Network providers generally configure their network devices to treat some classes of traffic differently from other classes of traffic. For example, voice reproduced from network voice traffic may be distorted when it is delayed. Therefore, a network provider may configure network devices to forward a voice traffic class according to a highest or strict priority. Video reproduced from video traffic is less affected by delays than voice traffic. Therefore, the network provider may configure network devices to forward a video traffic class at a lower priority than the voice traffic class. Data traffic is less affected by delays than either the video or the voice traffic. Consequently, the network provider may configure the network devices to treat a data traffic class according to a best effort or a lower priority than that assigned to either the voice traffic class or the video traffic class.
Network providers generally use a hierarchical scheduler, implemented within the network devices, to schedule the forwarding of traffic via logical interfaces according to the traffic's associated priority. The priority may be based on the class of traffic, such as, for example, voice, video, and data classes. The hierarchical scheduler may include multiple scheduler nodes. Each scheduler node may be associated with a priority. For example, one scheduler node may process all high priority traffic for a logical interface and another scheduler node may process all medium priority traffic for the logical interface. The hierarchical scheduler may provide the network provider with the ability to configure a separate scheduler node for each of the priorities. Thus, each scheduler node of a network device may receive traffic of a particular priority and may forward the traffic to one or more logical interfaces, such as, for example, virtual circuits (VCs). Because some of the scheduler nodes may be in separate hierarchies or priorities, unused bandwidth for a logical interface in one hierarchy is not shared with a logical interface queue of another hierarchy. For example, if voice traffic for a first virtual circuit is low, the unused bandwidth cannot be used by the first virtual circuit in another hierarchy, such as one that carries video or data traffic. Many network providers “carve out” bandwidth for logical interfaces by configuring rate or bandwidth limits for each hierarchy. However, the “carve out” does not provide for bandwidth sharing among different hierarchies when bandwidth use of a logical interface by high priority traffic is low.